/**
 * 涉及角色：
 * 1.Component 是组合中的对象声明接口，在适当的情况下，实现所有类共有接口的默认行为。声明一个接口用于访问和管理Component子部件。
 * 2.Leaf 在组合中表示叶子结点对象，叶子结点没有子结点。
 * 3.Composite 定义有枝节点行为，用来存储子部件，在Component接口中实现与子部件有关操作，如增加(add)和删除(remove)等。
 * <p>
 * 适用性：
 * 以下情况下适用Composite模式：
 * 1．你想表示对象的部分-整体层次结构。
 * 2．你希望用户忽略组合对象与单个对象的不同，用户将统一地使用组合结构中的所有对象。
 */
package com.seu.design.pattern.structural.composite;